/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.evosoft.test;

import com.evosoft.excepciones.CantCreateUpdate;
import com.evosoft.facade.FacadeFactory;
import com.evosoft.model.Empresa;
import com.evosoft.model.Persona;
import com.evosoft.model.Rol;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author David
 */
public class EmpresaTester {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        System.out.println("Empiea test");
        try {
            
            crearEmpresaAdmin();
             //actualizarEmpresa();
            //eliminarEmpresa(1);
        } catch (Exception ex) {
            Logger.getLogger(EmpresaTester.class.getName()).log(Level.SEVERE, null, ex);
        }
        System.out.println("Termina test");
    }

    
    /*Se usa para probar la creación de la empresa y su super administrador*/
    private static void crearEmpresaAdmin() throws Exception {
        
        //Esta persona debería ser el usuario que esta en sesion
        Persona persona = FacadeFactory.getInstance().getPersonaFacade().obtenerPorUsuario("admin");
        
        Empresa empresa = new Empresa();
        
        empresa.setNombre("Adolfo González Ltda");
        empresa.setCorreo("adolfo@asda.com");
        empresa.setDireccion("Calle 45 ocn 30");
        empresa.setNit("12342342-8");
        empresa.setTelefono("2342312");
        
        
        try {
            FacadeFactory.getInstance().getEmpresaFacade().crearEmpresa(empresa, persona.getId());
        }
        catch(CantCreateUpdate e) {
            System.out.println(e.getMessage());
        }
        
        
        int id = 0;
        try{
            id = FacadeFactory.getInstance().getEmpresaFacade().obtenerUltimaEmpresaCreada();
        }
        catch(Exception e) {
            System.out.println(e.getMessage());
        }
        
        
        Persona personaNueva = new Persona();
        personaNueva.setNombre("Luis José");
        personaNueva.setApellido("Acero");
        personaNueva.setCedula("1445854741");
        personaNueva.setCelular("23456789");
        personaNueva.setUsuario("luisjoseacero");
        personaNueva.setClave("123456");
        personaNueva.setTelefono("0987654321");
        personaNueva.setCorreo("luis@adolfo.com");        
        personaNueva.setEmpresa(new Empresa(id));
        //Se da id de rol = 1 porque es un superadministrador
        personaNueva.setRol(new Rol(1));
        
        
        Persona personaConsulta = new Persona();
        personaConsulta.setNombre("Alejandro");
        personaConsulta.setApellido("García ");
        personaConsulta.setCedula("1034963214");
        personaConsulta.setCelular("23456789");
        personaConsulta.setUsuario("alejandrogarcia");
        personaConsulta.setClave("123456");
        personaConsulta.setTelefono("0987654321");
        personaConsulta.setCorreo("alejandro@adolfo.com");        
        personaConsulta.setEmpresa(new Empresa(id));
        //Se da id de rol = 1 porque es un superadministrador
        personaConsulta.setRol(new Rol(3));
        
        
        try {
            FacadeFactory.getInstance().getPersonaFacade().crearPersona(personaNueva, persona.getId());
            FacadeFactory.getInstance().getPersonaFacade().crearPersona(personaConsulta, persona.getId());
        }
        catch(CantCreateUpdate e) {
            System.out.println(e.getMessage());
        }
    }
    
    private static void actualizarEmpresa() throws Exception {
        
        Persona persona = FacadeFactory.getInstance().getPersonaFacade().obtenerPorUsuario("alejandrogarcia");
        
        Empresa empresa = FacadeFactory.getInstance().getEmpresaFacade().buscarEmpresaPorId(14);
        
        empresa.setCorreo("1nuevo1@asda.com");
        empresa.setDireccion("Calle 123");
        empresa.setNit("10000000-9");
        empresa.setNombre("1Empresa cambiada");
        empresa.setTelefono("1511111");
        try {
            FacadeFactory.getInstance().getEmpresaFacade().actualizarEmpresa(empresa,persona.getId());
        }
        catch(CantCreateUpdate e) {
            System.out.println(e.getMessage());
        }
    }
    
    
    private static void eliminarEmpresa(int idEmpresa) throws Exception {
        Persona persona = FacadeFactory.getInstance().getPersonaFacade().obtenerPorUsuario("admin");
        try {
            FacadeFactory.getInstance().getEmpresaFacade().eliminarEmpresa(idEmpresa, persona.getId());
        }
        catch(CantCreateUpdate e) {
            System.out.println(e.getMessage());
        }
    }
}
